1 基本规则
缩写和扩展写法
- 扩展写法就是属性大类-属性小类的写法,比如background-color,border-top-width,margin-left,font-size等。
- 缩写就是按照一定的规则将扩展写法写到一起,各个属性之间用空格隔开,比如background,font,margin,border等,由于各个属性之间的值比较容易区分,所以CSS解析器不容易混淆属性,对于不容易区分的需要用单撇号
/
分隔。
常见的缩写
font
font: font-style|font-variant|font-weight|font-size|line-height|font-family
margin 或 padding
margin: margin-top|margin-right|margin-bottom|margin-left
padding: padding-top|padding-right|padding-bottom|padding-left
这种涉及到四个值的缩写属性有一个规则,写一个值是应用到四方;写两个值分别为上下和左右的值;写三个值为上、左右、下的值;写四个值依次为上、右、下、左的值。border
border:border-width|border-style|border-color
list-style
list-style:list-style-type|list-style-position|list-style-image
background
background:background-color|background-image|background-repeat|background-attachment|background-position
color
六位十六进制可以缩写为三位,如果每两位都是相同的话。
2 背景
2.1 属性详解
- background
设置元素的背景色,背景图,背景重复方式,背景滚动方式,背景位置
- background-color
设置背景色,可以是颜色名称,十六进制值或者rgb值或者是transparent(默认)
- background-image
可以给一个url对象或者none(默认)
- background-repeat
repeat(默认)或者repeat-x或者repeat-y或者no-repeat,设置两个方向,单向或者不重复
- background-attachment
随着页面滚动而滚动(scroll)或者固定在页面的某一个位置(fixed)
- background-position
设置背景图片的位置,可以是top left center bottom right这些位置关键词,或者是百分比,也可以是像素值
2.2 应用实例
实现进度条
<div style="position:relative;width:100px;height:20px;border:solid 1px grey;"> <div style="width:50px;height:18px;margin:1px;background-color:blue;"></div> <span style="position:absolute;left:40%;top:0;">50%</span> </div>
实现淘宝评价效果
<div style="position:relative;width:120px;height:19px;background:url(star_both_five.png) 0 -18px no-repeat;"> <div style="height:20px;float:left;background:url(star_both_five.png) 0 0 no-repeat;width:70%;"></div> <div style="position:absolute;left:0;top:0;height:19px;z-index:1"> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> </div> </div> <div style="position:relative;width:120px;height:19px;background:url(star_both_five.png) 0 -18px no-repeat;"> <div style="height:19px;float:left;background:url(star_both_five.png) 0 0 no-repeat;width:70%;"></div> <div style="position:absolute;left:0;top:0;height:19px;z-index:1"> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> </div> </div> <div style="position:relative;width:98px;height:19px;background:url(star_both_one.png) 0 -22px repeat-x;"> <div style="height:20px;float:left;background:url(star_both_one.png) 0 0 repeat-x;width:70%;"></div> <div style="position:absolute;left:0;top:0;height:19px;z-index:1"> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> </div> </div> <div style="position:relative;width:98px;height:19px;background:url(star_dark.png) 0 2px repeat-x;"> <div style="height:20px;float:left;background:url(star_bright.png) repeat-x;width:70%;"></div> <div style="position:absolute;left:0;top:0;height:19px;z-index:1"> <span style="display:inline-block;width:18px;height:18px;cursor:pointer;"></span> </div> </div>
2.3 参考资料
- CSS背景属性background详解
- CSS背景属性详解
- CSS新属性及多背景
- CSS3 background相关介绍
- CSS3 background属性介绍
- css background简写方式
- CSS中背景图片定位方法
- background-position 用法详细介绍
3 边距、边框
3.1 属性详解
3.1.1 margin
- margin
- margin-top
- margin-right
- margin-bottom
- margin-left
margin 属性可以以上右下左的顺序设定各个方向的外边距值,也可以通过margin-方向来设定单个方向的外边距值,值可以是具体的像素、厘米等单位的值,也可以是百分比。
3.1.2 padding
- padding
- padding-top
- padding-right
- padding-bottom
- padding-left
padding 属性可以以上右下左的顺序设定各个方向的内边距值,也可以通过padding-方向来设定单个方向的内边距值,值可以是具体的像素、厘米等单位的值,也可以是百分比。
3.1.3 border
- border
- border-width
- border-style
- border-color
- border-top-width
- border-top-style
- border-top-color
- border-right-width
- border-right-style
- border-right-color
- border-bottom-width
- border-bottom-style
- border-bottom-color
- border-left-width
- border-left-style
- border-left-color
border 依次设置宽度,样式和颜色,也可以通过border-width,border-style,border-color单独来以上右下左的顺序设置其中的每一项,同样也可以用border-方向-width,border-方向-style,border-方向-color,来单独设置各个方向的值。
3.2 应用实例
实现Tab页效果
<div style="background-color:grey;height:28px;width:250px;border-bottom:1px solid white;"> <ul style="list-style-type:none;"> <li style="float:left;padding:4px;margin:1px; border-width: 1px;border-style: solid solid none; border-color:darkgrey;">页签一</li> <li style="float:left;padding:4px;margin:1px; border-width: 1px;border-style: solid solid none; border-color:darkgrey; background-color:white;">页签二</li> <li style="float:left;padding:4px;margin:1px; border-width: 1px;border-style: solid solid none; border-color:darkgrey;">页签三</li> </ul> </div>
实现选中效果
<div style="text-align:center;"> <a href="#" style="display:inline-block;text-decoration:none;border: 1px solid lightgrey;width:20px;height:20px;background-color:grey;">1</a> <a href="#" style="display:inline-block;;text-decoration:none;border: 1px solid red;width:20px;height:20px;background-color:transparent;">2</a> <a href="#" style="display:inline-block;;text-decoration:none;border: 1px solid lightgrey;width:20px;height:20px;background-color:grey;">3</a> </div>
实现各向小三角
<div style="border-style:solid;border-width: 50px; border-color: red green blue yellow; width:0;height:0;"> </div> <div style="border-style:solid;border-width: 50px 50px 0px; border-color: red transparent transparent; width:0;height:0;"> </div>
3.3 参考资料
- [使用css实现全兼容浏览器的三角形][1]
- [用CSS代码绘制三角形 纯CSS绘制三角形的代码][5]
- [CSS创建三角形(小三角)的几种方法][6]
4 定位
4.1 属性详解
4.1.1 float
- left
- right
float的元素脱离了文档流,不能撑开父元素,同时也会影响文档流布局。浮动元素左右边界为父元素的边界或者是左右浮动元素的边界。
浮动元素的块级兄弟元素会显示在浮动元素的下方,文本会被”挤开”形成环绕的效果(包括块级兄弟元素中的文本)
可以在float元素的父元素中加overflow属性,使浮动元素撑开父元素,或者同时浮动父子元素。
可以在浮动元素的兄弟元素中加clear属性清除浮动元素的布局影响。
float 属性可以用来做文字环绕的效果,或者靠在靠右排列的效果,或者将块级元素显示为行内元素的效果。
4.1.2 position
- static
默认的普通文档流的定位方式,顺序排放。
- relative
相对于元素当前位置的定位方式,元素还存在在文档流中,可以用top,left,right,bottom进行偏移定位。可以在元素位置保留(不被其他元素占用)的情况下进行位置调整。
- absolute
此种定位方式的元素,脱离了文档流,定位不是完全绝对的;他的定位的相对位置是范围从小扩大的过程中遇到的第一个非static(默认文档流定位)定位的祖先元素,如果没有最后则相对于body元素。这种特性便于设定一个非static的祖先元素来界定其中absolute元素的相对定位。
- fixed
这种定位方式的元素也脱离了文档流,他的定位的原点是视窗本身,不随文档的滚动而变动。
4.1.3 z-index
通过设置不同大小的数值,来约束元素在z轴上的层叠位置,改变元素的堆叠效果
4.2 应用实例
实现弹窗效果
<div style="background-color:lightblue;border:1px solid grey;z-index 100;width:100px;height:100px;position:absolute;top:50%;left:50%;"> </div>
实现进度条
<div style="position:relative;width:100px;height:20px;border:solid 1px grey;"> <div style="width:50px;height:18px;margin:1px;background-color:blue;"></div> <span style="position:absolute;left:40%;top:0;">50%</span> </div>
4.3 参考资料
- W3School CSS Position
- CSS Position 博客园
- CSS 定位属性
- CSS浮动属性
- CSS属性float详解
- 图文详解CSS float
- CSS float深入剖析
- CSS z-index用法
- CSS遮罩层的实现
- Bootstrap 模态框(Modal)插件
- DIV+CSS模拟弹层遮罩效果
- 奇妙的CSS Shapes
- 一些有趣的CSS话题汇总
- CSS2 属性列表 可继承性
5 参考资料
[20个实用的CSS技巧代码][2]
[CSS使用技巧][3]
[CSS使用技巧收集,包含CSS2/CSS3][4]
[CSS新手整理的CSS技巧][7]
[CSS使用技巧20则][8]
[十大CSS技巧][9]
[10个非常有用的CSS技巧][10]
关于IE6、IE7、IE8实现盒子阴影shadow的几个注意点
[1]: http://www.bitscn.com/school/HTMLCSS/201410/337133.html"使用css实现全兼容浏览器的三角形"
[2]: http://www.w3cplus.com/css/20-incredibly-useful-CSS-snippets-for-developers"20个实用的CSS技巧代码"
[3]: http://www.ruanyifeng.com/blog/2010/03/css_cookbook.html"CSS使用技巧"
[4]: http://www.shejidaren.com/css%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7%E6%94%B6%E9%9B%86-%E5%8C%85%E5%90%ABcss2-css3.html"CSS使用技巧收集,包含CSS2/CSS3"
[5]: http://www.jb51.net/css/54994.html"用CSS代码绘制三角形 纯CSS绘制三角形的代码”
[6]: http://www.daqianduan.com/4721.html"CSS创建三角形(小三角)的几种方法"
[7]: http://www.duote.com/tech/1/1952.html"CSS新手整理的CSS技巧"
[8]: http://www.jb51.net/article/1187.htm"CSS使用技巧20则"
[9]: http://blog.csdn.net/budinger/article/details/18086543"十大CSS技巧"
[10]: http://www.cnblogs.com/hnyei/archive/2011/11/12/hnyei.html"10个非常有用的CSS技巧"
最后更新: 2022年03月02日 03:32
原始链接: http://rawbin-.github.io/language/css/2015-05-29-practical-css/